package com.wf.demo.info.web;


import com.wf.demo.info.pojo.Company;
import com.wf.demo.info.service.CompanyService;
import com.wf.demo.info.util.Page4Navigator;
import com.wf.demo.info.util.Result;
import com.wf.demo.sys.annotation.SysLog;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.util.HtmlUtils;

import java.util.List;

@RestController
public class CompanyCotroller {
    @Autowired
    CompanyService companyService;
    @GetMapping("/companys")
    @RequiresPermissions("info:company")
    public List<Company> list(){
        return  companyService.list();
    }

    @GetMapping("/companys/{id}")
    @RequiresPermissions("info:company")
    public Object get(@PathVariable("id")int id ){
        Company bean =companyService.get(id);
        return bean;
    }

    @SysLog("上传公司")
    @PostMapping("/companys")
    @RequiresPermissions("info:company")
    public Object add(@RequestBody Company bean) throws Exception{
        String name=bean.getName();
        boolean exit=companyService.isExist(name);
        if(exit){
            String message="此公司名已存在，无需重复添加";
            return Result.addFail(message);
        }
        companyService.add(bean);
        return Result.addSuccess(bean);
    }

    @SysLog("删除公司")
    @DeleteMapping("/companys/{id}")
    @RequiresPermissions("info:company")
    public String delete(@PathVariable("id")int id ){
        //id为1的红江厂总公司不可删除
        if(id!=1)
        companyService.delete(id);
        return null;
    }
    @SysLog("修改公司")
    @PutMapping("/companys")
    @RequiresPermissions("info:company")
    public Object update(@RequestBody Company bean) throws Exception{

        String name=bean.getName();
        //整个数据库中是否重名
        boolean exit=companyService.isExist(name);
        //和原名是否重名
        exit=companyService.isExist(bean);
        if(exit){
            String message="此公司名已存在，更新失败";
            return Result.addFail(message);
        }
        companyService.update(bean);
        return Result.addSuccess(bean);
    }

}
